import { loginApi } from '@/api/user'
import { setToken, getToken, removeToken } from '@/utils/auth'
export default {
  // 开启命名空间
  namespaced: true,
  state: {
    token: getToken() // 设置token初始状态
  },
  // 修改状态
  mutations: {
    // 设置token
    setToken(state, token) {
      state.token = token // 设置token 只是修改state的数据

      setToken(token) // vuex和缓存数据的同步
    },
    // 删除缓存
    removeToken(state) {
      state.token = null
      removeToken() // vuex和 缓存数据的同步
    }
  },

  // 执行异步
  actions: {
    // 定义login action  也需要参数 调用action时 传递过来的参数
    async login(ctx, data) {
      const res = await loginApi(data)
      console.log(res)
      ctx.commit('setToken', res)

      // token持久化
      setToken(res)
    }
  }
}

